온라인 교육

소프트웨어 공학 개론

 

6주차 시퀀스 다이어그램

 

 

이번 시간에 다룰 내용은 요구를 분할한 덩어리인 사용사례에 대한 내부 구현입니다. 지난 주 배운 클래스 다이어그램을 통하여 시스템 내부의 중요한 클래스들을 찾아냈습니다. 찾아낸 클래스들은 특정한 기능을 위하여 서로 협력합니다. 그 협력하는 단위가 사용사례입니다. 하나의 사용사례를 위하여 어떤 클래스에 속하는 객체들이 서로 어떤 메시지를 교환하는지 자세히 나타낸 것이 바로 시퀀스 다이어그램입니다. 시퀀스 다이어그램은 시스템의 동적인 관점을 나타낸 것으로 다이어그램을 완성하면서 클래스가 가져야 할 메시지를 찾을 수 있습니다.

 

시퀀스 다이어그램에서 사용하는 기본 요소는 다음과 같습니다.

 

Ÿ  클래스나 액터의 인스턴스 - 클래스의 인스턴스는 클래스와 같이 박스로 표시하며 그 안에 객체의 식별자를 쓰고 밑줄을 긋는다. 액터는 사용사례 다이어그램에서 사용하였던 심볼을 그대로 쓴다.

Ÿ  메시지 - 액터로부터 객체에 또는 객체에서 다른 객체로 표시된 화살표가 있다. 이것은 메시지를 의미하여 인터랙션 다이어그램을 그리는 중요한 이유는 순차적인 메시지 교환을 이해하려는 것이다.

 

시퀀스 다이어그램을 그리는 방법

 

시퀀스 다이어그램의 X축에는 참여 객체, Y축에는 시간의 흐름을 나타낸다. 즉 하나의 사용사례를 만족시키기 위하여 X축 상에 나타낸 객체들이 상호작용하기 위한 메시지의 호출을 위에서부터 차례로 나타내는 것이다. 따라서 먼저 참여 객체를 파악하고 X축에 나열한 후 사용사례에 기술된 이벤트의 순서에 따라 객체 메시지를 호출하면 된다.

 

Step 1. 참여하는 객체를 파악

Step 2. 파악한 객체를 X축에 나열하고 라이프라인을 그음


Step 3. 사용사례에 기술된 이벤트 순서에 따라 객체의 메시지 호출

 

메시지의 표현

 

시퀀스 다이어그램은 사용사례를 만족시키기 위하여 협동하는 객체의 메시지 호출을 나타낸 것이라 하였다. 따라서 메시지의 표현이 중요하다. 먼저 호출한 메시지를 가진 객체에 수평 화살표로 표시한다. 메시지 이름과 매개 변수를 화살표 위에 표시하면 된다. 화살표의 끝은 메시지를 받는 객체의 수직 점선(이를 라이프라인이라함)까지 이어져야 한다.

 


그림 2 메시지의 표현

 

 

다른 동적 다이어그램

 

시스템을 동작되는 관점으로 모델링하는 여러 가지 방법이 있다. 메시지의 교환이라는 관점에서 나타내는 UML 다이어그램은 시퀀스 다이어그램과 커뮤니케이션 다이어그램이다. 커뮤니케이션 다이어그램은 시퀀스 다이어그램과 그 의미는 같고 나타내는 방법만 다르다. 시퀀스 다이어그램은 객체의 울타리 사이에 메시지를 수평 화살표로 그리는 타입이지만 커뮤니케이션 다이어그램은 네트워크로 연결된 객체 사이에 메시지 교환을 나타낸다.

 

UML의 동적 다이어그램 중 상태 다이어그램과 액티비티 다이어그램이 중요하다. 상태 다이어그램은 시스템의 특성에 따라 상태(모드)가 중요한 경우 사용된다. 상태는 객체 또는 시스템이 가지는 특성값이 결정하며 상태에 따라 다른 행동(메시지의 호출)이 이루어져야 하는 경우 매우 중요하다. 예를 들어 신호등의 제어를 위한 시스템에서 빨강, 황색, 녹색등의 점멸은 어떤 상태의 등이 켜져 있는지에 따라 달라진다. 이럴 때 각 상태와 상태의 변화를 일으키는 메시지를 그림으로 그린 것이 상태 다이어그램이다.

 

DRW000007400dfc

그림 3 교통신호등의 상태 다이어그램